<!DOCTYPE html>
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
  <meta name="description" content="刘清政">
  <meta name="keyword" content="hexo-theme">
  
    <link rel="shortcut icon" href="/css/images/logo.png">
  
  <title>
    
      Justin-刘清政的博客
    
  </title>
  <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
  <link href="//cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.css" rel="stylesheet">
  <link href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/tomorrow.min.css" rel="stylesheet">
  
<link rel="stylesheet" href="/css/style.css">

  
    
<link rel="stylesheet" href="/css/plugins/gitment.css">

  
  <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/geopattern/1.2.3/js/geopattern.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.js"></script>
  
    
<script src="/js/qrious.js"></script>

  
  
    
<script src="/js/gitment.js"></script>

  
  

  
<meta name="generator" content="Hexo 4.2.0"></head>
<div class="wechat-share">
  <img src="/css/images/logo.png" />
</div>

  <body>
    <header class="header fixed-header">
  <div class="header-container">
    <a class="home-link" href="/">
      <div class="logo"></div>
      <span>Justin-刘清政的博客</span>
    </a>
    <ul class="right-list">
      
        <li class="list-item">
          
            <a href="/" class="item-link active">主页</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/tags/" class="item-link">标签</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/archives/" class="item-link">归档</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/about/" class="item-link">关于我</a>
          
        </li>
      
    </ul>
    <div class="menu">
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
    </div>
    <div class="menu-mask">
      <ul class="menu-list">
        
          <li class="menu-item">
            
              <a href="/" class="menu-link mobile-active">主页</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/tags/" class="menu-link">标签</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/archives/" class="menu-link">归档</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/about/" class="menu-link">关于我</a>
            
          </li>
        
      </ul>
    </div>
  </div>
</header>

    <main class="app-body">
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E8%B7%AF%E9%A3%9E%E9%A1%B9%E7%9B%AE/8-%E6%94%AF%E4%BB%98/1-%E6%94%AF%E4%BB%98%E5%AE%9D%E6%94%AF%E4%BB%98/">python/路飞项目/8-支付/1-支付宝支付</a>
      </h2>
      <p class="article-date">2020年3月7日</p>
      
      <div class="article-summary">
        
          支付宝支付入门12345678910"""1）支付宝API：六大接口https://docs.open.alipay.com/270/105900/2）支付宝工作流程(见下图)：https://docs.open.alipay.com/270/105898/3）支付宝8次异步通知机制(支付宝 ...
        
      </div>
      <a class="more" href="/python/%E8%B7%AF%E9%A3%9E%E9%A1%B9%E7%9B%AE/8-%E6%94%AF%E4%BB%98/1-%E6%94%AF%E4%BB%98%E5%AE%9D%E6%94%AF%E4%BB%98/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E8%B7%AF%E9%A3%9E%E9%A1%B9%E7%9B%AE/7-%E6%90%9C%E7%B4%A2%E5%8A%9F%E8%83%BD/2-%E6%90%9C%E7%B4%A2%E5%90%8E%E5%8F%B0%E6%8E%A5%E5%8F%A3/">python/路飞项目/7-搜索功能/2-搜索后台接口</a>
      </h2>
      <p class="article-date">2020年3月6日</p>
      
      <div class="article-summary">
        
          路由：course/urls.py1router.register('search', views.SearchCourseViewSet, 'search')  # 搜索课程

视图：course/views.py1234567891011121314from rest_framework ...
        
      </div>
      <a class="more" href="/python/%E8%B7%AF%E9%A3%9E%E9%A1%B9%E7%9B%AE/7-%E6%90%9C%E7%B4%A2%E5%8A%9F%E8%83%BD/2-%E6%90%9C%E7%B4%A2%E5%90%8E%E5%8F%B0%E6%8E%A5%E5%8F%A3/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E8%B7%AF%E9%A3%9E%E9%A1%B9%E7%9B%AE/6-%E8%AF%BE%E7%A8%8B%E6%A8%A1%E5%9D%97/5-%E8%AF%BE%E7%A8%8B%E4%B8%BB%E9%A1%B5%E4%B9%8B%E8%AF%BE%E7%A8%8B%E6%8E%A5%E5%8F%A3/">python/路飞项目/6-课程模块/5-课程主页之课程接口</a>
      </h2>
      <p class="article-date">2020年3月6日</p>
      
      <div class="article-summary">
        
          路由：course/urls.py12router.register('categories', views.CourseCategoryViewSet, 'categories')  # 分类router.register('free', views.CourseViewSet, 'fre ...
        
      </div>
      <a class="more" href="/python/%E8%B7%AF%E9%A3%9E%E9%A1%B9%E7%9B%AE/6-%E8%AF%BE%E7%A8%8B%E6%A8%A1%E5%9D%97/5-%E8%AF%BE%E7%A8%8B%E4%B8%BB%E9%A1%B5%E4%B9%8B%E8%AF%BE%E7%A8%8B%E6%8E%A5%E5%8F%A3/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E8%B7%AF%E9%A3%9E%E9%A1%B9%E7%9B%AE/6-%E8%AF%BE%E7%A8%8B%E6%A8%A1%E5%9D%97/7-%E8%AF%BE%E7%A8%8B%E8%AF%A6%E6%83%85%E9%A1%B5%E4%B9%8B%E5%90%8E%E5%8F%B0/">python/路飞项目/6-课程模块/7-课程详情页之后台</a>
      </h2>
      <p class="article-date">2020年3月6日</p>
      
      <div class="article-summary">
        
          详情页后台路由：source/urls.py12router.register('free', views.CourseViewSet, 'free')  # 课程router.register('chapters', views.ChapterViewSet, 'chapter')  #  ...
        
      </div>
      <a class="more" href="/python/%E8%B7%AF%E9%A3%9E%E9%A1%B9%E7%9B%AE/6-%E8%AF%BE%E7%A8%8B%E6%A8%A1%E5%9D%97/7-%E8%AF%BE%E7%A8%8B%E8%AF%A6%E6%83%85%E9%A1%B5%E4%B9%8B%E5%90%8E%E5%8F%B0/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E8%B7%AF%E9%A3%9E%E9%A1%B9%E7%9B%AE/7-%E6%90%9C%E7%B4%A2%E5%8A%9F%E8%83%BD/3-%E6%90%9C%E7%B4%A2%E9%A1%B5%E9%9D%A2/">python/路飞项目/7-搜索功能/3-搜索页面</a>
      </h2>
      <p class="article-date">2020年3月6日</p>
      
      <div class="article-summary">
        
          SearchCourse搜索页面1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697 ...
        
      </div>
      <a class="more" href="/python/%E8%B7%AF%E9%A3%9E%E9%A1%B9%E7%9B%AE/7-%E6%90%9C%E7%B4%A2%E5%8A%9F%E8%83%BD/3-%E6%90%9C%E7%B4%A2%E9%A1%B5%E9%9D%A2/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E8%B7%AF%E9%A3%9E%E9%A1%B9%E7%9B%AE/7-%E6%90%9C%E7%B4%A2%E5%8A%9F%E8%83%BD/1-%E6%90%9C%E7%B4%A2%E5%AF%BC%E8%88%AA%E6%A0%8F/">python/路飞项目/7-搜索功能/1-搜索导航栏</a>
      </h2>
      <p class="article-date">2020年3月6日</p>
      
      <div class="article-summary">
        
          Header搜索组件：选择性CVrouter/index.js12345678910import SearchCourse from '../views/SearchCourse.vue'const routes = [    // ...    &#123;        path: '/ ...
        
      </div>
      <a class="more" href="/python/%E8%B7%AF%E9%A3%9E%E9%A1%B9%E7%9B%AE/7-%E6%90%9C%E7%B4%A2%E5%8A%9F%E8%83%BD/1-%E6%90%9C%E7%B4%A2%E5%AF%BC%E8%88%AA%E6%A0%8F/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E8%B7%AF%E9%A3%9E%E9%A1%B9%E7%9B%AE/6-%E8%AF%BE%E7%A8%8B%E6%A8%A1%E5%9D%97/6-%E8%AF%BE%E7%A8%8B%E8%AF%A6%E6%83%85%E9%A1%B5%E4%B9%8B%E5%89%8D%E5%8F%B0/">python/路飞项目/6-课程模块/6-课程详情页之前台</a>
      </h2>
      <p class="article-date">2020年3月6日</p>
      
      <div class="article-summary">
        
          详情页组件依赖：在luffycity目录下的命令1&gt;: cnpm install vue-video-player

配置：main.js12345// vue-video播放器require('video.js/dist/video-js.css');require('vue-vid ...
        
      </div>
      <a class="more" href="/python/%E8%B7%AF%E9%A3%9E%E9%A1%B9%E7%9B%AE/6-%E8%AF%BE%E7%A8%8B%E6%A8%A1%E5%9D%97/6-%E8%AF%BE%E7%A8%8B%E8%AF%A6%E6%83%85%E9%A1%B5%E4%B9%8B%E5%89%8D%E5%8F%B0/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E8%B7%AF%E9%A3%9E%E9%A1%B9%E7%9B%AE/5-celery/1-celery/">python/路飞项目/5-celery/1-celery</a>
      </h2>
      <p class="article-date">2020年3月4日</p>
      
      <div class="article-summary">
        
          Celery官方Celery 官网：http://www.celeryproject.org/
Celery 官方文档英文版：http://docs.celeryproject.org/en/latest/index.html
Celery 官方文档中文版：http://docs.jinka ...
        
      </div>
      <a class="more" href="/python/%E8%B7%AF%E9%A3%9E%E9%A1%B9%E7%9B%AE/5-celery/1-celery/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E8%B7%AF%E9%A3%9E%E9%A1%B9%E7%9B%AE/4-redis/1-redis%E6%93%8D%E4%BD%9C/">python/路飞项目/4-redis/1-redis操作</a>
      </h2>
      <p class="article-date">2020年3月3日</p>
      
      <div class="article-summary">
        
          2redis介绍redis安装1234"""1、官网下载：安装包或是绿色面安装2、安装并配置环境变量"""

redis VS mysql123456"""redis: 内存数据库(读写快)、非关系型(操作数据方便、数据固定)mysql: 硬盘数据库(数据持久化)、关系型(操作数据间关系、可 ...
        
      </div>
      <a class="more" href="/python/%E8%B7%AF%E9%A3%9E%E9%A1%B9%E7%9B%AE/4-redis/1-redis%E6%93%8D%E4%BD%9C/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E8%B7%AF%E9%A3%9E%E9%A1%B9%E7%9B%AE/3-%E7%99%BB%E5%BD%95%E6%B3%A8%E5%86%8C/8-%E5%89%8D%E5%8F%B0%E7%99%BB%E5%BD%95%E6%B3%A8%E5%86%8C%E4%BF%AE%E8%AE%A2/">python/路飞项目/3-登录注册/8-前台登录注册修订</a>
      </h2>
      <p class="article-date">2020年3月2日</p>
      
      <div class="article-summary">
        
          前台Login.vue123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 ...
        
      </div>
      <a class="more" href="/python/%E8%B7%AF%E9%A3%9E%E9%A1%B9%E7%9B%AE/3-%E7%99%BB%E5%BD%95%E6%B3%A8%E5%86%8C/8-%E5%89%8D%E5%8F%B0%E7%99%BB%E5%BD%95%E6%B3%A8%E5%86%8C%E4%BF%AE%E8%AE%A2/">详情...</a>
    </article>
  

  
    <div class="guide-pager">
  
    <a href="/page/27/"><span class="page-arrow">← </span>Prev</a>
  
  
    <a href="/page/29/">Next<span class="page-arrow"> →</span></a>
  
</div>
  
</main>


    <div class="scroll-top">
  <span class="arrow-icon"></span>
</div>
    <footer class="app-footer">
<!-- 不蒜子统计 -->
<span id="busuanzi_container_site_pv">
     本站总访问量<span id="busuanzi_value_site_pv"></span>次
</span>
<span class="post-meta-divider">|</span>
<span id="busuanzi_container_site_uv" style='display:none'>
     本站访客数<span id="busuanzi_value_site_uv"></span>人
</span>
<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>



  <p class="copyright">
    &copy; 2021 | Proudly powered by <a href="https://www.cnblogs.com/xiaoyuanqujing" target="_blank">小猿取经</a>
    <br>
    Theme by <a href="https://www.cnblogs.com/xiaoyuanqujing" target="_blank" rel="noopener">小猿取经</a>
  </p>
</footer>

<script>
  function async(u, c) {
    var d = document, t = 'script',
      o = d.createElement(t),
      s = d.getElementsByTagName(t)[0];
    o.src = u;
    if (c) { o.addEventListener('load', function (e) { c(null, e); }, false); }
    s.parentNode.insertBefore(o, s);
  }
</script>
<script>
  async("//cdnjs.cloudflare.com/ajax/libs/fastclick/1.0.6/fastclick.min.js", function(){
    FastClick.attach(document.body);
  })
</script>

<script>
  var hasLine = 'true';
  async("//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js", function(){
    $('figure pre').each(function(i, block) {
      var figure = $(this).parents('figure');
      if (hasLine === 'false') {
        figure.find('.gutter').hide();
      }
      var lang = figure.attr('class').split(' ')[1] || 'code';
      var codeHtml = $(this).html();
      var codeTag = document.createElement('code');
      codeTag.className = lang;
      codeTag.innerHTML = codeHtml;
      $(this).attr('class', '').empty().html(codeTag);
      figure.attr('data-lang', lang.toUpperCase());
      hljs.highlightBlock(block);
    });
  })
</script>





<!-- Baidu Tongji -->

<script>
    var _baId = 'c5fd96eee1193585be191f318c3fa725';
    // Originial
    var _hmt = _hmt || [];
    (function() {
      var hm = document.createElement("script");
      hm.src = "//hm.baidu.com/hm.js?" + _baId;
      var s = document.getElementsByTagName("script")[0];
      s.parentNode.insertBefore(hm, s);
    })();
</script>


<script src="/js/script.js"></script>


<script src="/js/search.js"></script>


<script src="/js/load.js"></script>



  <span class="local-search local-search-google local-search-plugin" style="right: 50px;top: 70px;;position:absolute;z-index:2;">
      <input type="search" placeholder="站内搜索" id="local-search-input" class="local-search-input-cls" style="">
      <div id="local-search-result" class="local-search-result-cls"></div>
  </span>


  </body>
</html>